import request from "../../utils/request";


Page({
    data: {
        bannerList: [], // 轮播图数据
        recommendList: [], // 推荐歌单
        rankList: [], // 排行榜数据
    },

    onLoad() {
        this.getBannerList();
        this.getRecommendList();
        this.getRankList();
    },

    async getBannerList() {
        try {
            const res = await request('/banner', {type: 2});
            this.setData({bannerList: res.banners});
        } catch (e) {
            console.log(e);
        }
    },

    async getRecommendList() {
        const res = await request('/personalized', {limit: 10});
        this.setData({recommendList: res.result});
    },

    // 获取排行榜数据
    /*
    * 需求分析：
    *   1. 需要根据idx的值获取对应的数据
    *   2. idx的取值范围是0-20， 我们需要0-4
    *   3. 需要发送5次请求
    * 前++ 和 后++的区别
    *   1. 先看到是运算符还是值
    *   2. 如果先看到的是运算符就先运算再赋值
    *   3. 如果先看到的值那么就先赋值再运算
    * */
    async getRankList() {
        const rankList = [];
        for (let i = 0; i < 5; i++) {
            const res = await request('/top/list', {idx: i});
            const playlist = res.playlist || {};
            rankList.push({
                id: playlist.id,
                name: playlist.name,
                tracks: playlist.tracks && playlist.tracks.length ? playlist.tracks.slice(0, 3) : []
            });
            //渲染次数增加了但是用户等待时间减少了
            this.setData({rankList});
        }
    },

    //跳转到每日推荐页面
    handleRecommend() {
        wx.navigateTo({url: '/songPackage/pages/recommend/recommend'});
    }
});
